Multi-stage production refers to a process of completing a product (a unit) by performing a series of actions on the unit in multiple, separate stages. Several units may be processed in a pipelined fashion, e.g., processing a first unit through consecutive stages and as the first unit completes processing in each stage, immediately processing a subsequent unit in the completed stage. Any delay in the production of the first unit may cause a delay (a “stall”) in the production of subsequent unit(s). Stall(s) in the production process increases the overall production time of units, which is undesirable.
One particular type of multi-stage production design is a computer processor having a pipeline for processing multiple instructions. To improve the performance of a multi-stage pipelined processor a model may be developed to simulate the behavior of the processor while executing a set of instructions.